using System;
using System.Security.Cryptography;
using System.Text;

namespace WegasManagementSystem.Utils
{
    /// <summary>
    /// 安全帮助类，提供加密功能
    /// </summary>
    public static class SecurityHelper
    {
        /// <summary>
        /// 简单加密密码（MD5）
        /// 在实际应用中应当使用更安全的方式，比如加盐的哈希或者其他更安全的算法
        /// </summary>
        /// <param name="password">原始密码</param>
        /// <returns>加密后的密码</returns>
        public static string EncryptPassword(string password)
        {
            // 本示例使用简单的MD5加密，实际应用中应考虑更安全的方式
            // 考虑到需求文档中提到"简单用户名/密码验证（无需复杂加密）"
            if (string.IsNullOrEmpty(password))
                return string.Empty;

            using (MD5 md5 = MD5.Create())
            {
                byte[] inputBytes = Encoding.UTF8.GetBytes(password);
                byte[] hashBytes = md5.ComputeHash(inputBytes);

                // 将字节数组转换成十六进制字符串
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < hashBytes.Length; i++)
                {
                    sb.Append(hashBytes[i].ToString("x2"));
                }
                return sb.ToString();
            }
        }

        /// <summary>
        /// 验证密码
        /// </summary>
        /// <param name="inputPassword">输入的密码</param>
        /// <param name="storedPassword">存储的加密密码</param>
        /// <returns>是否匹配</returns>
        public static bool VerifyPassword(string inputPassword, string storedPassword)
        {
            if (string.IsNullOrEmpty(inputPassword) || string.IsNullOrEmpty(storedPassword))
                return false;

            string encryptedInput = EncryptPassword(inputPassword);
            return encryptedInput.Equals(storedPassword, StringComparison.OrdinalIgnoreCase);
        }
    }
} 